A number of methods are known in the art for aggregating multiple physical links into a single logical channel between a transmitter and a receiver. Data are split at the transmitter into multiple streams, each of which is transmitted over a respective one of the physical links. The receiver then reassembles the data into the original order. The use of multiple parallel links is advantageous in providing high channel bandwidth when only low-bandwidth links are available, and also assists network operators in offering flexible data rates and bandwidth on demand.
Standard methods for multilink transmission of this sort have been defined for both Asynchronous Transfer Mode (ATM) and Internet Protocol (IP) networks. The ATM approach is described in document AF-PHY-0086.001, promulgated by the ATM Forum (1999), entitled “Inverse Multiplexing for ATM (IMA) Specification Version 1.1.” For IP networks, the “PPP Multilink Protocol” is described by Sklower et al. in Request for Comments (RFC) 1990 of the Internet Engineering Task Force (IETF). Both of these documents are incorporated herein by reference.
FIG. 1 is a block diagram that schematically illustrates a system 20 for multilink data communications in accordance with the PPP Multilink Protocol, as is known in the art. A transmitter 22 transmits data over a multilink channel 24 to a receiver 26. Channel 24 comprises multiple physical links 28, 30, 32. A fragmenter 40 breaks incoming packets 34, 36, 38 into fragments 42 for transmission over the different physical links. Each fragment 42 receives a Multilink Protocol (MP) header that includes a fragment sequence number (SN), a beginning bit (B) and an ending bit (E). The SN is incremented for each fragment in the sequence. In the example shown in FIG. 1, SN runs from 4 to 13. Packet 34 is divided into fragments 4-7, packet 36 into fragments 8-10, and packet 38 into fragments 11-13. The first fragment in each packet receives B=1, while the last segment receives E=1. Otherwise, B and E are set to zero. When a fragment contains an entire packet, both B and E are set to 1.
Transmitter 22 sends fragments 42 over channel 24 in the order of their sequence numbers. There is no assurance, however, that the fragments will arrive in order at receiver 26, and some of the fragments may be lost entirely. A reassembler 44 in receiver 26 waits until all of the fragments in a given packet have arrived before rebuilding the entire packet. (Although for the sake of conceptual clarity, fragmenter 40 and reassembler 44 are shown and described herein as distinct functional blocks, the functions of these blocks are typically carried out along with other functions by central processing units (CPUs) in transmitter 22 and receiver 26, respectively.) If reassembler 44 determines that any of the fragments in the packet have been lost, the rest of the fragments in the packet are discarded.
In order to detect lost fragments, reassembler 44 keeps track of the minimum over all of links 28, 30 and 32 of the most recently received SN. This minimum is identified in FIG. 1 as M, which is seen to increase from 4 to 5 to 6 to 9 as fragments 42 arrive in sequence over the links. Whenever an ending (E) fragment arrives, the reassembler checks the SN of the ending fragment against M. When M is greater than the SN of the ending fragment (SNE), and the remaining fragments in the packet to which the ending fragment belongs have not yet arrived, the missing fragments are considered to have been lost. All of the fragments whose sequence numbers are less than or equal to SNE are then discarded. For example, if in the scheme shown in FIG. 1, the fragment with SN=5 had failed to arrive at the receiver, then when M=9, the ending fragment of packet 34 (SNE=7), which was previously received, would meet the criterion M>SNE. All of the fragments belonging to packet 34 (SN=4, 6 and 7) would then be discarded.
In order for this method of reassembly and lost fragment detection to work properly, it is necessary that transmitter 22 send the fragments strictly in order of their sequence numbers. All of the fragments of each packet must therefore be sent without interruption before the transmitter begins sending the fragments of the next packet. As a result, when the ending fragment is received, the receiver is assured that all of the fragments in the packet have already been transmitted. If M increases past SNE without all of the fragments in the packet having arrived, then it can be safely assumed that one or more of the packets have been lost.